/**
 * 系统注册表列表
 * 
 * @param {}
 *            tabid
 */
function tableList(tabid) {
	var tableListStore = new Ext.data.JsonStore({
				idProperty : 'id',
				remoteSort : false,
				totalProperty : 'totalCount',
				root : 'tableList',
				fields : ['name', 'memo', 'file', 'ds'],

				// load using script tags for cross domain, if the data in on
				// the same domain as
				// this page, an HttpProxy would be better
				proxy : new Ext.data.ScriptTagProxy({
							url : context + '/system/table.do?method=list'
						})
			});

	var tableListGrid = new Ext.grid.GridPanel({
				id : tabid,
				store : tableListStore,
				closable : true,
				columns : [{
							header : '表名称',
							width : 150,
							sortable : true,
							dataIndex : 'name',
							renderer : renderTableName
						}, {
							header : '表说明',
							width : 150,
							sortable : true,
							dataIndex : 'memo'
						}, {
							header : '所属文件',
							width : 150,
							sortable : false,
							dataIndex : 'file'
						}, {
							header : '数据源',
							width : 150,
							sortable : false,
							dataIndex : 'ds'
						}],
				stripeRows : true,
				autoExpandColumn : 'name',
				title : '系统数据表列表',
				border : false,
				viewConfig : {
					forceFit : true
				},
				// config options for stateful behavior
				stateful : true,
				stateId : 'grid',
				loadMask : {
					msg : "数据加载中，请稍等..."
				},
				bbar : new Ext.Toolbar([{
							iconCls : 'refresh',
							text : '刷新',
							handler : function() {
								tableListGrid.getStore().reload();
							}
						}])
			});

	tableListGrid.setIconClass('tabs');

	tableListStore.load({
				params : {
					start : 0,
					limit : pageSize
				}
			});

	return tableListGrid;
};

function renderTableName(value, cellmeta, record, rowIndex, columnIndex, store) {
	var resultString = String
			.format(
					'<b><a href="javascript:void(0);" onclick="javascript:viewcolumn(\'{0}\', \'{1}\');">{0}</a></b>',
					value, record.data.memo);

	return resultString;
};

function viewcolumn(id, name) {
	var columnListStore = new Ext.data.JsonStore({
				idProperty : 'id',
				remoteSort : false,
				totalProperty : 'totalCount',
				root : 'columnList',
				fields : ['name', 'fname', 'memo', 'type', 'length', 'key'],

				// load using script tags for cross domain, if the data in on
				// the same domain as
				// this page, an HttpProxy would be better
				proxy : new Ext.data.ScriptTagProxy({
							url : context
									+ '/system/table/columnlist.jsp?tname='
									+ id
						})
			});

	var columnListGrid = new Ext.grid.GridPanel({
				id : 'columnListGrid',
				store : columnListStore,
				columns : [{
							header : '字段名称',
							width : 150,
							sortable : true,
							dataIndex : 'name'
						}, {
							header : '表单域名称',
							width : 150,
							sortable : true,
							dataIndex : 'fname'
						}, {
							header : '字段说明',
							width : 150,
							sortable : true,
							dataIndex : 'memo'
						}, {
							header : '类型',
							width : 100,
							sortable : true,
							dataIndex : 'type'
						}, {
							header : '长度',
							width : 50,
							sortable : true,
							dataIndex : 'length'
						}, {
							header : '主键',
							width : 50,
							sortable : true,
							dataIndex : 'key'
						}],
				stripeRows : true,
				autoExpandColumn : 'name',
				height : 300,
				width : 270,
				border : false,
				viewConfig : {
					forceFit : true
				},
				// config options for stateful behavior
				stateful : true,
				stateId : 'grid',
				loadMask : {
					msg : "数据加载中，请稍等..."
				}
			});

	columnListStore.load({
				params : {
					start : 0,
					limit : pageSize
				}
			});

	var win = new Ext.Window({
				title : '数据表&nbsp;{' + name + '}',
				renderTo : Ext.getBody(),
				layout : 'fit',
				closable : true,
				resizable : false,
				// maximizable : true,
				width : 700,
				height : 465,
				border : false,
				plain : true,
				modal : true,
				items : [columnListGrid]
			});

	win.show(this);
}